package com.awn.weidian.demo.controller;
import com.awn.weidian.demo.mapper.ITuser;
import com.awn.weidian.demo.pojo.Tuser;

import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

/**
 * 框架 后台处理测试类
 *    类基础注译说明：
 *    @CrossOrigin  指定解决ajax访问跨域问题。
 *    @RestController  直接返回json类型数据！
 * @author kjx
 * @date 2018-04-13
 */
@RestController
@CrossOrigin
@RequestMapping("/test/demo")
public class TuserController {

    //业务处理类说明
    @Autowired
    private ITuser it;

    /**
     * @GetMapping()  Restful协议中针对查询，提供的访问方式
     */
    @GetMapping("/show")
    public List<Tuser> showUser(){
        return it.showList();
    }

    /**
     * @PostMapping() //Restful协议中针对查询，提供的访问方式
     * @RequestBody   //指前台页面传递的数据类型，这里注意，spring-boot要转化application/json类型传递参数，
     *                 否则会出现415错误，只需将前台修改成！content-type:application/json方式传递即可
     */
    @PostMapping("/add")
    public int addUser(@RequestBody Tuser tuser){
        return it.addUser(tuser);
    }

    /**
     * @PutMapping Restful协议中针对查询，提供的访问方式
     * @PathVariable 路径指定变量，put可以直接访问地址上变量
     */
    @PutMapping("/findone/{aa}")
    public Tuser findOne(@PathVariable String aa){
        return it.findOne(aa);
    }


  
    @PostMapping("/update")
    public int updateUser(@RequestBody Tuser tuser){
        return it.update(tuser);
    }

      /**
     * @DeleteMapping Restful协议中针对查询，提供的访问方式
     * @PathVariable 路径指定变量，put可以直接访问地址上变量
     */
    @DeleteMapping("/delete/{id}")
    public int deleteUser(@PathVariable String id){
        return it.deleteUser(id);
    }

}
